The invention relates to a multi storage mode data transfer facility, and more particularly to independent and transparent choice of storage mode by communicating processes.
In a distributed computing system, processes communicating with each other for purposes of accessing data may be physically separated from each other. That is, they reside and execute in different processors of the distributed system or do not share common storage. A process that executes in one processor of the system at one point in time may execute in another processor of the system at a later point in time. For example, a process may execute in a different processor in order to balance the system load among the processors that make up the system.
When a process is moved from one processor to another, it is desirable to minimize the amount of required redesign. Processes typically have designed into them certain assumptions about the physical location of the processes with which they wish to communicate.
Such is the case with the use of move and locate storage modes when communicating with another process for purposes of accessing data. In locate mode, data is not moved into the storage of a process requesting the data. A pointer is returned, with the data in storage accessible to the requesting process. In move mode, data is moved into a storage area specified by the requesting process.
Traditional use of locate mode assumes that the process providing a pointer to the data shares the same memory with the requesting process. If one of the processes is moved to another processor, or no longer shares the same memory, locate mode no longer works and a design change is necessary to pick another access mode.
IBM Technical Disclosure Bulletin Vol. 23 No. 5 October 1980, Distributed Data Processing System, describes a processing system wherein system resources belong to processes and communication between processes is indirect via supervisor services. This provides some process mobility. Communication is in terms of messages processed by subsystem communication facilities. IBM Technical Disclosure Bulletin Vol. 22 No. 7 December 1979, Message-Based Protocol for Interprocessor Communication, discloses a message-based protocol for communicating between processes executing on different processors loosely coupled via a common bus. Processes are defined as execution units which interact through message queues and through shared variables.
A process accessing data may specify buffer areas into which requested data is to be placed or from which data is to be sent. These buffers are dynamically allocated and controlled by the process accessing the data. If the control of these buffers is to be passed to another process, then these two processes must agree at the time they are designed on their convention for passing control.
Passing control of dynamically allocated buffers between processes is another case where design change becomes necessary when one of the processes moves to another processor.